package com.example.mq.common;

import lombok.Data;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2023-10-05
 * Time: 20:23
 */
/*
 * 请求或响应的格式：[type（4byte）|length（4byte）|payload（由 length 决定）]
 * type 的类型
 * 0x1 创建 channel
 * 0x2 关闭 channel
 * ox3 创建 exchange
 * 0x4 销毁 exchange
 * 0x5 创建 queue
 * 0x6 销毁 queue
 * 0x7 创建 binding
 * 0x8 销毁 binding
 * 0x9 发送 message
 * 0xa 订阅 message
 * 0xb 返回 ack
 * 0xc 服务器给客户端推送的消息. (被订阅的消息)响应独有的.
 *
 * payload 里的内容会根据当前是请求还是响应，以及 type 有不同的取值
 * 比如 type 是 Ox3(创建交换机),同时当前是一个请求,
 * 此时 payload 里的内容，就相当于是 exchangeDeclare 的参数的序列化的结果~~
 * 比如 type 是 Ox3(创建交换机),同时当前是一个响应,
 * 此时 payload 里的内容,就是 exchangeDeclare 的返回结果的序列化内容.
 */
@Data
public class Request {// 表示一个网络通信中的请求对象，按照自定义的协议格式来展开
    private int type;
    private int length;
    private byte[] payload;


}
